﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TwojeFinanse
{
    class Lokaty
    {
        public double oprocentowanie;
        public double okres;
        public double kapitalPoczatkowy;
        public double dokladanie;
        public double okresDokladania;

        public double zainwestowanyKapital;
        public double zysk;
        public double podatek;
        public double zyskKoncowy;
        public double zyskPoOpodatkowaniu;
        public double procentAll;
        public double procentMiesiac;

        public string text;

        public Lokaty(double _oprocentowanie, double _okres, double _kapitalPoczatkowy, double _dokladanie, double _okresDokladania) 
        {
            oprocentowanie = _oprocentowanie;
            okres = _okres;
            kapitalPoczatkowy = _kapitalPoczatkowy;
            dokladanie = _dokladanie;
            okresDokladania = _okresDokladania;
        }

        public void licz(bool miesiac)
        {
            text = "";

            zainwestowanyKapital = kapitalPoczatkowy;
            zyskKoncowy = kapitalPoczatkowy;
            

            procentAll = (Math.Pow((1 + oprocentowanie / 100), (okres)) - 1) * 100;

            procentMiesiac = (Math.Pow((1 + oprocentowanie / 100), 1 / Convert.ToDouble(12)) - 1) * 100;

            for (int i = 0; i < okres; i++)
            {
                if (miesiac)
                {
                    text += String.Format("Rok {0}\n", (i + 1));
                }
                for (int j = 0; j < 12; j++)
                {

                    zyskKoncowy += zyskKoncowy * (procentMiesiac / 100);

                    if (i < okresDokladania)
                    {
                        zyskKoncowy += dokladanie;
                        zainwestowanyKapital += dokladanie;
                    }
                    if (miesiac)
                    {

                        text += String.Format("{0}\t", LiczMiesiac(j + 1));
                        if (j != 9)
                        {
                            text += "\t";                               
                        }
                        text += String.Format("{0:.00}\n", zyskKoncowy);
                    }
                }
                if (miesiac)
                {
                    text += "\n";
                }
                else
                {
                    text += String.Format("Rok {0}, {1:.00}\n", (i + 1), zyskKoncowy);
                }
            }

            zysk = zyskKoncowy - zainwestowanyKapital;
            podatek = zysk * 0.19;
            zyskPoOpodatkowaniu = zyskKoncowy - podatek;
        }

        public string LiczMiesiac(int i)
        {
            string miesiac = "";
            switch (i)
            {
                case 1: miesiac = "styczen"; break;
                case 2: miesiac = "luty"; break;
                case 3: miesiac = "marzec"; break;
                case 4: miesiac = "kwiecien"; break;
                case 5: miesiac = "maj"; break;
                case 6: miesiac = "czerwiec"; break;
                case 7: miesiac = "lipiec"; break;
                case 8: miesiac = "sierpien"; break;
                case 9: miesiac = "wrzesien"; break;
                case 10: miesiac = "pazdziernik"; break;
                case 11: miesiac = "listopad"; break;
                case 12: miesiac = "grudzien"; break;
                default: break;
            }
            return miesiac;
        }

    }
}
